This invention relates generally to a method of changing data in a non-volatile memory and, more particularly, to a method of preventing the corruption of data in a non-volatile memory if the power fails during a non-volatile memory write operation.
The present invention will be discussed in terms of a pay-per-view (PPV) cable television system, although its scope is not limited thereto. The most desirable type of PPV is impulse pay-per-view (PPV), which allows a subscriber to order a program at the last minute.
Early PPV systems worked with one way addressable set-top terminals (STT). A subscriber who wished to order a PPV event did so by calling an operator and orally placing his order. The operator entered the order into a computer, which then transmitted authorization to the subscriber's set-top terminal.
This system suffers from the requirement of using the telephone and a human operator. This increases the cost of handling PPV requests, and effectively eliminates IPPV as a viable service since only a limited number of people are able to call in during the last minutes before a program begins. Therefore, the majority of people desiring to view a program must order it long before it begins.
Another system employs a two-way cable television (CATV) plant, in which the set-top terminal may be equipped for transmitting a signal back to the headend ("upstream transmission") on a suitable frequency, such as between 5 MHz and 30MHz. The terminal transmits information as to what programs are being or have been viewed to a computer at the headend. This system suffers from the fact that no protocols have been developed which operate efficiently in an environment of an exceedingly large number of set-top terminals who "speak" very little, but who must be serviced quickly when they do speak. Further, two-way CATV plants have proved difficult to maintain with adequate integrity to permit reliable return transmission, and the cost of the plant is excessive compared to the revenues to be gained from IPPV. Memory is repeatedly used in such systems to store data prior to transmission and memory wear out can easily occur.
Another system uses credits downloaded to the terminal, and then makes deductions against the credits when a program is viewed. At the end of the month, certain alpha-numeric characters are displayed, indicating programs viewed. The subscriber writes these characters on a card which is mailed to the CATV operator. This system suffers from excessive delay in reporting programs watched, a limited number of programs which can be viewed (due to the limited number of characters a subscriber can be expected to write down), and the possibility of unrecoverable errors in transcription.
Another type of system records billing information related to the purchase of IPPV events in non-volatile memory contained within the terminal and subsequently transmits the stored billing information to the headend over the telephone network. In such a system, however, it is possible that billing information being written to the non-volatile memory (NVM) may be corrupted if a power failure occurs while the data is being written. This can result in inaccurate billing and loss of revenue to the cable operator.